package com.gitee.swsk33.lucenedemo.model;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import com.gitee.swsk33.lucenedemo.util.MarkdownUtils;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.nio.charset.StandardCharsets;

/**
 * 存放md文件信息
 */
@Data
@AllArgsConstructor
public class MarkdownFile {

	/**
	 * 主键id
	 */
	private String id;

	/**
	 * 文章标题
	 */
	private String title;

	/**
	 * 文章内容，纯文本形式
	 */
	private String content;

	/**
	 * 指定文件路径读取Markdown文件
	 *
	 * @param id   文章id
	 * @param path 文件路径
	 * @return 文件对象
	 */
	public static MarkdownFile create(String id, String path) {
		String content = FileUtil.readString(path, StandardCharsets.UTF_8);
		String title = FileNameUtil.mainName(path);
		return new MarkdownFile(id, title, MarkdownUtils.convertMarkdownToPlainText(content));
	}

}